package com.ruoyi.oar.service;

import java.util.List;
import java.util.Optional;
import com.ruoyi.oar.domain.dto.OarUserDTO;
import com.ruoyi.oar.domain.query.OarUserQuery;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 从业人员Service接口
 * 
 * @author ruoyi
 * @date 2022-02-17
 */
public interface OarUserService
{
    /**
     * 查询从业人员
     * 
     * @param id 从业人员主键
     * @return 从业人员
     */
    public Optional<OarUserDTO> selectOarUserById(String id);

    /**
     * 查询从业人员列表
     * 
     * @param oarUserQuery 从业人员
     * @return 从业人员集合
     */
    public List<OarUserDTO> selectOarUserList(OarUserQuery oarUserQuery);

    /**
     * 分页查询从业人员列表
     *
     * @param oarUserQuery 从业人员
     * @return 从业人员集合
     */
    public TableDataInfo<OarUserDTO> findAll(OarUserQuery oarUserQuery);

    /**
     * 新增从业人员
     * 
     * @param oarUserDTO 从业人员
     * @return 结果
     */
    public int insertOarUser(OarUserDTO oarUserDTO);

    /**
     * 修改从业人员
     * 
     * @param oarUserDTO 从业人员
     * @return 结果
     */
    public int updateOarUser(OarUserDTO oarUserDTO);

    /**
     * 批量删除从业人员
     * 
     * @param ids 需要删除的从业人员主键集合
     * @return 结果
     */
    public int deleteOarUserByIds(String[] ids);

    /**
     * 删除从业人员信息
     * 
     * @param id 从业人员主键
     * @return 结果
     */
    public int deleteOarUserById(String id);

    /**
     * 查询从业人员列表
     * @param oarUserQuery
     * @return
     */
    public TableDataInfo<OarUserDTO> selOarUserAndHouseVo(OarUserQuery oarUserQuery);

    /**
     * 根据房屋id查询用户
     * @param houseId
     * @return
     */
    public List<OarUserDTO> selectOarUserByHouseId(String houseId);

    /**
     * 根据id查询从业人员及房屋信息列表
     * @param id
     * @return
     */
    public Optional<OarUserDTO> selUserAndHouseById(String id);
}
